Automatyczna generacja programu sterownika
Cel pracy: opracowanie systemu automatycznego programowania sterowników PLC oraz softPLC, przekształcającego specyfikację zapisaną w postaci diagramu stanów języka UML w program sterownika PLC w języku drabinkowym lub sterownika softPLC w języku C.
Opis tematu
§ Dowolny algorytm sterowania binarnego można zapisać w postaci grafu przejść automatu. Język UML umożliwia opisywanie modeli automatowych za pomocą diagramów stanu. Diagramy te wychodzą poza klasyczną teorię automatów, wprowadzając konstrukcję stanów równoległych oraz możliwość pomiaru czasu. Dodatkowymi elementami są także stany zagnieżdżone oraz wskaźnik historii.
§ Diagram stanów (zbiór diagramów), opisujący algorytm sterowania, tworzy specyfikację wymagań dla programu sterującego. Diagramy stanu można przygotować za pomocą komercyjnego systemu wspomagającego projektowanie oprogramowania Rational Rose. Edytor systemu Rose zapisuje diagramy stanu w tekstowych plikach z rozszerzeniem .mdl. Format zapisu tych plików jest łatwo czytelny; dla potrzeb tej pracy wystarczy usunąć z plików .mdl nadmiarowe dane opisujące topologię diagramu.
§ Zadaniem systemu automatycznej generacji programów jest przekształcenie zbioru diagramu stanów w program źródłowy sterownika. Rolę sterownika może pełnić sterownik PLC, programowany w języku drabinkowym (wg. IEC 1131-3) albo komputer PC programowany w języku C. W drugim przypadku komputer musi być wyposażony w karty wejścia-wyjścia oraz w biblioteki programów obsługujących wprowadzanie i wyprowadzanie danych. Opracowanie tych bibliotek oraz odpowiednich skryptów kompilacyjnych wchodzi w zakres tej pracy
§ Działanie systemu obejmuje następujące etapy:
o odczytanie diagramu i kontrola poprawności syntaktycznej;
o analiza poprawności diagramu (np. rozłączność przejść wyjściowych stanów);
o kodowanie stanów;
o generacja kodu w języku drabinkowym lub C.
§ Format zapisu programu w języku drabinkowym (środowisko STEP 7 firmy Siemens) jest znany, a środowisko STEP 7 umożliwia również wyświetlenie programu w postaci graficznej. Środowisko to współpracuje ze sterownikami S7 i zapewnia pełną komunikację z tymi sterownikami.
§ Elementy algorytmu kompilacji diagramu stanów do języka drabinkowego są opisane w pracach:
o Kręglewska U., Sacha K., Gustowski J., Ławryńczuk M., Podstawy sterowania, Oficyna Wydawnicza PW, Warszawa, 2003. (nowy skrypt PW)
o
Sacha
K., A Simple Method for PLC Programming, in: Colnaric
M., Adamski M., Węgrzyn M.
(eds): Real-Time Programming 2003, Elsevier, pp. 27-31, 2003
o
Sacha K., Automatic Code Generation for PLC Controllers, in: R. Winter, B. A. Gran, G. Dahll (eds.)
Computer Safety, Reliability
and Security, LNCS 3688, pp. 303-316, Springer-Verlag,
Berlin Heidelberg, 2005.
o oraz w innych pozycjach literaturowych
Plan pracy
PPM1
Celem projektu jest rozpoznanie problemu i opracowanie działającego prototypu aplikacji. W tym celu należy:
1. Zapoznać się z systemem Rational
Rose w celu:
a) poznania notacji UML w zakresie opisu diagramów
stanu,
b) poznania szczegółów formatu zapisu pliku .mdl.
2. Zapoznać się algorytmami kompilacji.
3. Zapoznać się z językiem drabinkowym i
formatem pliku w systemie STEP 7.
4. Opracować wstępną koncepcję kompilatora
(algorytm i podstawowe struktury danych).
5. Zaprogramować prototyp wczytujący ograniczone
diagramy stanu z plików .mdl i generujący kod
drabinkowy, akceptowany przez środowisko STEP 7.
Wynikiem
finalnym pracowni powinna być dokumentacja oraz działający prototyp systemu,
podlegający akceptacji w ramach zaliczenia.
PPM2
Analiza problemu:
o opracowanie algorytmu weryfikacji diagramów, przetwarzania stanów zagnieżdżonych i równoległych, kodowania stanów, obsługi zdarzeń i liczników czasu,
o opracowanie struktur danych
PDM
Projekt i implementacja systemu:
o architektury systemu automatycznej generacji programów,
o opracowanie parsera diagramów stanu,
o opracowanie modułu weryfikacji,
o opracowanie kompilatora diagramu,
o opracowanie generatora kodu drabinkowego.
PDYM
Weryfikacja i uzupełnienie systemu:
o opracowanie architektury sterownika softPLC,
o opracowanie bibliotek wejścia-wyjścia i skryptów kompilacyjnych,
o opracowanie generatora kodu C,
o integracja i weryfikacja systemu.